package com.star.vrserver.common;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.star.vrserver.entity.vo.PageVO;

import java.util.List;

/**
 * @author star
 * @date 2023-03-10 13:20
 * @Description 通用工具类：
 */
public class CommonTools {
    /**
     * 分页的通用工具类
     * @param service  传入对应的XXXXService完成分页
     * @param current 当前页数
     * @param limit  每页限制几条数据
     * @return com.star.vrserver.entity.vo.PageVO<T>
     * @author star
     * @create 2023/3/10
     **/

    public static <S extends IService<T>,T> PageVO<T> pageList(S service,long current, long limit) {
        PageVO<T> pageVO = new PageVO<>();
        //创建page对象
        Page<T> page = new Page<>(current, limit);
        //调用方法:底层封装，把分页所有数据封装到page对象里面
        service.page(page);
        //获取总记录数
        long total = page.getTotal();
        //获取最终分页结果集
        List<T> records = page.getRecords();
        //组装userPageVO返回结果
        pageVO.setTotal(total);
        pageVO.setRecords(records);
        return pageVO;
    }
}
